#ifndef SDK_CONFIG_H
#define SDK_CONFIG_H

#if defined(_WIN32)
#define API_EXPORT __declspec(dllexport)
#define API_IMPORT __declspec(dllimport)
#else
#define API_EXPORT __attribute__((visibility("default")))
#define API_IMPORT
#endif

#if defined(CORE_SDK_BUILD)
#define PI_API API_EXPORT
#else
#define PI_API API_IMPORT
#endif

#include <stdint.h>

#define INT_N(BIT)  typedef int##BIT##_t  s##BIT
#define UINT_N(BIT) typedef uint##BIT##_t u##BIT

INT_N(8);
INT_N(16);
INT_N(32);
INT_N(64);
UINT_N(8);
UINT_N(16);
UINT_N(32);
UINT_N(64);

#undef INT_N
#undef UINT_N

typedef float  f32;
typedef double f64;

#if defined(__GNUC__)
#define PI_INLINE __inline__ __attribute__((always_inline))
#elif defined(_MSC_VER)
#define PI_INLINE __forceinline
#else
#define PI_INLINE inline
#endif

#endif /* SDK_CONFIG_H */
